1. Field of the Invention
The present invention relates generally to a method and apparatus for veiling and detecting data, and more particularly, to a method and apparatus for veiling and detecting data using an error correcting code.
2. Description of the Related Art
FIG. 1 illustrates a conventional method for veiling data.
Referring to FIG. 1, a memory is divided into position 1 (110), position 2 (120), position 3 (130), position 4 (140), and position 5 (150). Further, protected data is stored in position 3. For reference, the division of the memory can be a physical division, a virtual division, or a combination thereof.
When protected data is stored in such a manner, an authorized user should know the size and location of the protected data in order to retrieve the protected data. However, an unauthorized user should not know the size and location of protected data. Therefore, it is possible to effectively prevent unauthorized user from obtaining protected data.
However, when an unauthorized somehow knows the size of protected data, there is a danger that the unauthorized user may detect the protected data by dividing the entire memory area into units based on the size of the protected data, and then observing each divided area.
FIG. 2 illustrates a conventional process of veiling data based on an Error Correcting Code (ECC). Specifically, an ECC may be used to reduce the above-described danger.
Referring to FIG. 2, an error correcting code encoder 210 encodes protected data (m). The ECC is an extra code, which is generated according to a rule that can correct an error, when such an error occurs within the bits constituting a code. The ECC encoder 210 encodes protected data (m) using an ECC. Thereafter, an error generator 220 generates a pseudo random error (e) according to a predetermined rule, and combines the error with encoded data. Further, as a result of combination of errors, data is stored in an appropriate position of a memory 230. Basically, the data-stored position is determined according to the size of the encoded, protected data, as illustrated with reference to FIG. 1.
In FIG. 2, the conventional apparatus for veiling data combines an error and stores the combined data in the memory 230. As such, it is difficult for an unauthorized user to restore original data without knowledge on the ECC. That is, because the unauthorized user cannot know what error is included in the distorted, encoded data, it is more difficult for the unauthorized user to find important data. Further, it is difficult for the unauthorized user to remove an error without knowledge of decoding characteristics of the ECC. Therefore, according to the method illustrated in FIG. 2, the effect of preventing exposure of protected data can be obtained.
FIG. 3 illustrates a conventional process of veiling ECC-based data.
Referring to FIG. 3, an ECC encoder 310 encodes protected data (m) using an ECC. The encoded data is stored in a memory 320. Thereafter, data is output in a memory 330. An error generator 340 combines an error (e) with output data. Therefore, user is provided with error-combined data (v).
In FIG. 2, an error (e) is combined with encoded data, and the combined data is stored in the memory 230. In contrast, in FIG. 3, encoded data is stored in the memory 320 as itself, but when output to user, the data (v) is provided after being combined with an error (e).
Although the methods illustrated in FIGS. 2 and 3 make it difficult for an unauthorized user to obtain stored, protected data, they also make it more difficult for an authorized user to retrieve the stored, protected data due to the combination of an error.
Specifically, as the encoder uses an ECC with a high error-correcting ability, the number of errors combined increases. Further, an authorized user can also obtain desired data when proceeding with the decoding process of ECCs for the entire memory in order to obtain protected data. Further, the more artificial errors that are combined to effectively veil stored, protected data, the more superior ECCs are necessary. However, generally, the more superior the error-correcting capability is, the higher the decoding complexity is.